﻿using System;
using System.Runtime.InteropServices;

namespace Valve.VR
{
	// Token: 0x0200052A RID: 1322
	public class CVRCompositor
	{
		// Token: 0x06001BFF RID: 7167 RVA: 0x00011CEE File Offset: 0x0000FEEE
		internal CVRCompositor(IntPtr pInterface)
		{
			this.FnTable = (IVRCompositor)Marshal.PtrToStructure(pInterface, typeof(IVRCompositor));
		}

		// Token: 0x06001C00 RID: 7168 RVA: 0x00011D11 File Offset: 0x0000FF11
		public void SetTrackingSpace(ETrackingUniverseOrigin eOrigin)
		{
			this.FnTable.SetTrackingSpace(eOrigin);
		}

		// Token: 0x06001C01 RID: 7169 RVA: 0x0005FD3C File Offset: 0x0005DF3C
		public ETrackingUniverseOrigin GetTrackingSpace()
		{
			return this.FnTable.GetTrackingSpace();
		}

		// Token: 0x06001C02 RID: 7170 RVA: 0x0005FD5C File Offset: 0x0005DF5C
		public EVRCompositorError WaitGetPoses(TrackedDevicePose_t[] pRenderPoseArray, TrackedDevicePose_t[] pGamePoseArray)
		{
			return this.FnTable.WaitGetPoses(pRenderPoseArray, (uint)pRenderPoseArray.Length, pGamePoseArray, (uint)pGamePoseArray.Length);
		}

		// Token: 0x06001C03 RID: 7171 RVA: 0x0005FD84 File Offset: 0x0005DF84
		public EVRCompositorError GetLastPoses(TrackedDevicePose_t[] pRenderPoseArray, TrackedDevicePose_t[] pGamePoseArray)
		{
			return this.FnTable.GetLastPoses(pRenderPoseArray, (uint)pRenderPoseArray.Length, pGamePoseArray, (uint)pGamePoseArray.Length);
		}

		// Token: 0x06001C04 RID: 7172 RVA: 0x0005FDAC File Offset: 0x0005DFAC
		public EVRCompositorError GetLastPoseForTrackedDeviceIndex(uint unDeviceIndex, ref TrackedDevicePose_t pOutputPose, ref TrackedDevicePose_t pOutputGamePose)
		{
			return this.FnTable.GetLastPoseForTrackedDeviceIndex(unDeviceIndex, ref pOutputPose, ref pOutputGamePose);
		}

		// Token: 0x06001C05 RID: 7173 RVA: 0x0005FDD0 File Offset: 0x0005DFD0
		public EVRCompositorError Submit(EVREye eEye, ref Texture_t pTexture, ref VRTextureBounds_t pBounds, EVRSubmitFlags nSubmitFlags)
		{
			return this.FnTable.Submit(eEye, ref pTexture, ref pBounds, nSubmitFlags);
		}

		// Token: 0x06001C06 RID: 7174 RVA: 0x00011D24 File Offset: 0x0000FF24
		public void ClearLastSubmittedFrame()
		{
			this.FnTable.ClearLastSubmittedFrame();
		}

		// Token: 0x06001C07 RID: 7175 RVA: 0x00011D36 File Offset: 0x0000FF36
		public void PostPresentHandoff()
		{
			this.FnTable.PostPresentHandoff();
		}

		// Token: 0x06001C08 RID: 7176 RVA: 0x0005FDF4 File Offset: 0x0005DFF4
		public bool GetFrameTiming(ref Compositor_FrameTiming pTiming, uint unFramesAgo)
		{
			return this.FnTable.GetFrameTiming(ref pTiming, unFramesAgo);
		}

		// Token: 0x06001C09 RID: 7177 RVA: 0x0005FE18 File Offset: 0x0005E018
		public float GetFrameTimeRemaining()
		{
			return this.FnTable.GetFrameTimeRemaining();
		}

		// Token: 0x06001C0A RID: 7178 RVA: 0x00011D48 File Offset: 0x0000FF48
		public void GetCumulativeStats(ref Compositor_CumulativeStats pStats, uint nStatsSizeInBytes)
		{
			this.FnTable.GetCumulativeStats(ref pStats, nStatsSizeInBytes);
		}

		// Token: 0x06001C0B RID: 7179 RVA: 0x00011D5C File Offset: 0x0000FF5C
		public void FadeToColor(float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
		{
			this.FnTable.FadeToColor(fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
		}

		// Token: 0x06001C0C RID: 7180 RVA: 0x00011D77 File Offset: 0x0000FF77
		public void FadeGrid(float fSeconds, bool bFadeIn)
		{
			this.FnTable.FadeGrid(fSeconds, bFadeIn);
		}

		// Token: 0x06001C0D RID: 7181 RVA: 0x0005FE38 File Offset: 0x0005E038
		public EVRCompositorError SetSkyboxOverride(Texture_t[] pTextures)
		{
			return this.FnTable.SetSkyboxOverride(pTextures, (uint)pTextures.Length);
		}

		// Token: 0x06001C0E RID: 7182 RVA: 0x00011D8B File Offset: 0x0000FF8B
		public void ClearSkyboxOverride()
		{
			this.FnTable.ClearSkyboxOverride();
		}

		// Token: 0x06001C0F RID: 7183 RVA: 0x00011D9D File Offset: 0x0000FF9D
		public void CompositorBringToFront()
		{
			this.FnTable.CompositorBringToFront();
		}

		// Token: 0x06001C10 RID: 7184 RVA: 0x00011DAF File Offset: 0x0000FFAF
		public void CompositorGoToBack()
		{
			this.FnTable.CompositorGoToBack();
		}

		// Token: 0x06001C11 RID: 7185 RVA: 0x00011DC1 File Offset: 0x0000FFC1
		public void CompositorQuit()
		{
			this.FnTable.CompositorQuit();
		}

		// Token: 0x06001C12 RID: 7186 RVA: 0x0005FE5C File Offset: 0x0005E05C
		public bool IsFullscreen()
		{
			return this.FnTable.IsFullscreen();
		}

		// Token: 0x06001C13 RID: 7187 RVA: 0x0005FE7C File Offset: 0x0005E07C
		public uint GetCurrentSceneFocusProcess()
		{
			return this.FnTable.GetCurrentSceneFocusProcess();
		}

		// Token: 0x06001C14 RID: 7188 RVA: 0x0005FE9C File Offset: 0x0005E09C
		public uint GetLastFrameRenderer()
		{
			return this.FnTable.GetLastFrameRenderer();
		}

		// Token: 0x06001C15 RID: 7189 RVA: 0x0005FEBC File Offset: 0x0005E0BC
		public bool CanRenderScene()
		{
			return this.FnTable.CanRenderScene();
		}

		// Token: 0x06001C16 RID: 7190 RVA: 0x00011DD3 File Offset: 0x0000FFD3
		public void ShowMirrorWindow()
		{
			this.FnTable.ShowMirrorWindow();
		}

		// Token: 0x06001C17 RID: 7191 RVA: 0x00011DE5 File Offset: 0x0000FFE5
		public void HideMirrorWindow()
		{
			this.FnTable.HideMirrorWindow();
		}

		// Token: 0x06001C18 RID: 7192 RVA: 0x0005FEDC File Offset: 0x0005E0DC
		public bool IsMirrorWindowVisible()
		{
			return this.FnTable.IsMirrorWindowVisible();
		}

		// Token: 0x06001C19 RID: 7193 RVA: 0x00011DF7 File Offset: 0x0000FFF7
		public void CompositorDumpImages()
		{
			this.FnTable.CompositorDumpImages();
		}

		// Token: 0x06001C1A RID: 7194 RVA: 0x0005FEFC File Offset: 0x0005E0FC
		public bool ShouldAppRenderWithLowResources()
		{
			return this.FnTable.ShouldAppRenderWithLowResources();
		}

		// Token: 0x06001C1B RID: 7195 RVA: 0x00011E09 File Offset: 0x00010009
		public void ForceInterleavedReprojectionOn(bool bOverride)
		{
			this.FnTable.ForceInterleavedReprojectionOn(bOverride);
		}

		// Token: 0x06001C1C RID: 7196 RVA: 0x00011E1C File Offset: 0x0001001C
		public void ForceReconnectProcess()
		{
			this.FnTable.ForceReconnectProcess();
		}

		// Token: 0x06001C1D RID: 7197 RVA: 0x00011E2E File Offset: 0x0001002E
		public void SuspendRendering(bool bSuspend)
		{
			this.FnTable.SuspendRendering(bSuspend);
		}

		// Token: 0x06001C1E RID: 7198 RVA: 0x0005FF1C File Offset: 0x0005E11C
		public EVRCompositorError GetMirrorTextureD3D11(EVREye eEye, IntPtr pD3D11DeviceOrResource, ref IntPtr ppD3D11ShaderResourceView)
		{
			return this.FnTable.GetMirrorTextureD3D11(eEye, pD3D11DeviceOrResource, ref ppD3D11ShaderResourceView);
		}

		// Token: 0x06001C1F RID: 7199 RVA: 0x0005FF40 File Offset: 0x0005E140
		public EVRCompositorError GetMirrorTextureGL(EVREye eEye, ref uint pglTextureId, IntPtr pglSharedTextureHandle)
		{
			pglTextureId = 0u;
			return this.FnTable.GetMirrorTextureGL(eEye, ref pglTextureId, pglSharedTextureHandle);
		}

		// Token: 0x06001C20 RID: 7200 RVA: 0x0005FF68 File Offset: 0x0005E168
		public bool ReleaseSharedGLTexture(uint glTextureId, IntPtr glSharedTextureHandle)
		{
			return this.FnTable.ReleaseSharedGLTexture(glTextureId, glSharedTextureHandle);
		}

		// Token: 0x06001C21 RID: 7201 RVA: 0x00011E41 File Offset: 0x00010041
		public void LockGLSharedTextureForAccess(IntPtr glSharedTextureHandle)
		{
			this.FnTable.LockGLSharedTextureForAccess(glSharedTextureHandle);
		}

		// Token: 0x06001C22 RID: 7202 RVA: 0x00011E54 File Offset: 0x00010054
		public void UnlockGLSharedTextureForAccess(IntPtr glSharedTextureHandle)
		{
			this.FnTable.UnlockGLSharedTextureForAccess(glSharedTextureHandle);
		}

		// Token: 0x040010F7 RID: 4343
		public IVRCompositor FnTable;
	}
}
